package com.lzy.article.service;

import com.lzy.pojo.Category;
import com.lzy.pojo.bo.NewArticleBO;
import com.lzy.utils.PagedGridResult;

import java.util.Date;

public interface ArticleService {

    /**
     * 发布文章
     */
    public void createArticle(NewArticleBO newArticleBO, Category category) throws Exception;


    /**
     * 用户查询自己的文章列表
     */
    public PagedGridResult queryMyArticleList(String userId, String keyword,
                                              Integer status,
                                              Date startDate, Date endDate,
                                              Integer page, Integer pageSize);


    /**
     * 更改文章状态
     */
    public void updateArticleStatus(String articleId, Integer pendingStatus);


    /**
     * 根据文章id更新定时发布为即时发布
     */
    public void updateArticleToPublish(String articleId);


    /**
     * 更改文章的articleMongoId
     */
    public void updateArticleToGridFS(String articleId, String articleMongoId);


    /**
     * 管理员查询文章列表
     */
    public PagedGridResult queryAllArticleListAdmin(Integer status, Integer page, Integer pageSize);

    /**
     * 删除文章
     */
    public void deleteArticle(String userId, String articleId);

    /**
     * 撤回文章
     */
    public void withdrawArticle(String userId, String articleId);

}
